﻿using System;

namespace TestesFixacao.Dominio.Modelos
{
    public class Materia
    {
        public int Numero { get; set; }

        public string Nome { get; set; }

        public Disciplina Disciplina { get; set; }

        public Serie Serie { get; set; }

        public Materia()
        {
        }

        public Materia(string n)
        {
            Nome = n;
        }

        public Materia(string n, Disciplina d, Serie s)
        {
            Nome = n;
            Disciplina = d;
            Serie = s;
        }

        public override string ToString()
        {
            return Nome;
        }

        public override bool Equals(object obj)
        {
            if (obj == null || GetType() != obj.GetType())
                return false;

            Materia mat = (Materia)obj;
            if ((mat.Numero == this.Numero) && (mat.Nome == this.Nome))
                return true;

            return false;
        }

        public void Valida()
        {
            if (Nome.Length == 0)
                throw new Exception("Digite o nome da Matéria.");
            if (Disciplina == null)
                throw new Exception("Selecione a Disciplina.");
            if (Serie == null)
                throw new Exception("Selecione a Serie.");
        }
    }
}